package com.zhongfeng.api.modules.end.mapper;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zhongfeng.api.modules.end.vo.EndVo;
import com.zhongfeng.api.modules.end.vo.params.EndParams;
import com.zhongfeng.api.modules.front.vo.FrontVo;
import com.zhongfeng.api.modules.front.vo.NumberVo;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Component;

import java.util.List;

/**
 * 记账功能Mapper
 *
 * @author blueCat
 * @since 2022/2/24
 */
public interface EndMapper {

    /**
     * 查询全部下游
     *
     * @return
     */
    List<EndVo> queryAllEnd(Page<EndVo> page, @Param("params") EndParams params);

    /**
     * 不分页查询全部下游
     *
     * @return
     */
    List<EndVo> queryAllEndWithoutPage();

    /**
     * 添加下游
     *
     * @param params
     * @return
     */
    int addEnd(@Param("params") EndParams params);

    /**
     * 删除下游
     *
     * @param id
     * @return
     */
    int deleteEnd(Integer id);

    /**
     * 更新下游
     *
     * @param params
     * @return
     */
    int updateEnd(@Param("params") EndParams params);

    /**
     * 获取一个测试A号码
     */
    String getOneNumber();

    /**
     * 查询对接网关属性
     *
     * @return
     */
    List<EndVo> queryEndProperty();

    /**
     * 查询指定对接网关
     *
     * @param endId
     * @return
     */
    EndVo queryOneEnd(Integer endId);

    /**
     * 更新号码个数
     *
     * @param id
     * @param length
     */
    void updateEndNumberCounts(@Param("id") Integer id, @Param("numberCount") int length);

    /**
     * 更新落地分布
     *
     * @param endId
     * @param frontIdListStr
     */
    void updateFrontDistribution(@Param("id") Integer endId, @Param("frontId") String frontIdListStr);

    /**
     * 查询全部X号码
     * @param page
     * @param params
     * @return
     */
    List<NumberVo> queryAllXNumber(Page<FrontVo> page, @Param("params") EndParams params);

    /**
     * 查询全部X号码不分页
     * @param endId
     * @return
     */
    List<String> queryAllXNumberWithoutPage(Integer endId);

    /**
     * 新增X号码
     * @param endId
     * @param numberList
     */
    void addXNumber(@Param("endId") Integer endId, @Param("numberList") List<String> numberList);

    /**
     * 查询X号的对接网关id
     * @param number
     * @return
     */
    List<Integer> queryXEndId(String number);
}
